package entities;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.Table;

import dtos.ArticuloDTO;

@Entity
@Table(name = "Electrodomesticos")
@DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING)
@DiscriminatorValue("Electrodomestico")
public class Electrodomestico extends Articulo implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Column
	private String fichaTecnica;
	
	public String getFichaTecnica() {
		return fichaTecnica;
	}

	public void setFichaTecnica(String fichaTecnica) {
		this.fichaTecnica = fichaTecnica;
	}
	
	public static Electrodomestico parseDTO(ArticuloDTO articulo){
		Electrodomestico m = new Electrodomestico();
		try{
			
			m.fichaTecnica = articulo.getFichaTecnica();
			m.codigo = articulo.getCodigoArticulo();
			m.idModulo = articulo.getIdModulo();
			m.descripcion = articulo.getDescripcion();
			m.marca = articulo.getMarca();
			m.precio = articulo.getPrecio();
			m.foto = articulo.getFotoURL();
			m.nombre = articulo.getNombre();
			m.origen = articulo.getOrigen();
			
			return m;
		}catch(Exception e){
			m.codigo = articulo.getCodigoArticulo();
			m.descripcion = "Null pointer exception en alguno de los atributos del DTO recibido";
			return m;
		}
		
	}
	
	public ArticuloDTO getDTO(){
		ArticuloDTO electDTO = this.instanciateDTO();
		electDTO.setFichaTecnica(fichaTecnica);
		electDTO.setTipo("Electrodomestico");
		
		return electDTO;
	}
}
